//数据类型
public class Test {
    public static void main(String[] args) {
        //整数类型
        byte a=10;       //-2^7 ~ 2^7-1
        System.out.println(a);
        System.out.println(Byte.MIN_VALUE);
        System.out.println(Byte.MAX_VALUE);

        short b=10;      //-2^15 ~ 2^15-1
        System.out.println(b);

        int c=2147483647;//-2^31 ~ 2^31-1
                         //如果是+1后的数，就超过int类型的最大值，会报错，所以java比C语言更安全
        System.out.println(c);
        System.out.println(Integer.MIN_VALUE);  //包装类:Integer
        System.out.println(Integer.MAX_VALUE);

        long d=10L;      //-2^63 ~ 2^63-1
        System.out.println(d);
        System.out.println(Long.MIN_VALUE);
        System.out.println(Long.MAX_VALUE);

        //浮点类型   V=(-1)^S*M*2^E
        float e=12.5f;   //4个字节, 不能去掉f, 否则系统会认为它是double类型, 报错
                         //float精度: 小数点后六位
        System.out.println(e);
        System.out.println(Float.MIN_VALUE);
        System.out.println(Float.MAX_VALUE);

        double f=12.5;   //8个字节
                         //double精度:
        System.out.println(f);

        //字符型
        char g='高';      //2个字节, 0 ~ 2^16-1
                         //可以放汉字, 因为汉字也是两个字节
        System.out.println(g);
        System.out.println(Character.MIN_VALUE);//java虚拟器 无法正常解析    char的包装类: character
        System.out.println(Character.MAX_VALUE);
        //用javac编译时, 出现错误字符, 改为:javac -encoding utf-8 xxx.java, 因为Java用的是Unicode编码

        //布尔型 Boolean   //无明确大小
        //当它放在开头, 下面代码不会执行, 但有一个例外, 当它之后下面代码报错则不能运行, 因为要先编译, 再运行
        boolean h=true;   //java中没有0为假, 非0为真
        System.out.println(h);

        //基本功能
        int x=10;
        int y=20;
        System.out.println("x:"+x + " " + "y:"+y);// + 起到拼接的作用

        String s = x+"";                //借助+  把int类型改为String类型
        System.out.println(s);

        String s1 = String.valueOf(y);  //借助方法
        System.out.println(y);
    }
}
//C语言中的整形提升和算术转换Java同样适用
